#ifndef NATIVE_API_H
#define NATIVE_API_H

__attribute__((import_module("env")))
__attribute__((import_name("MC_init")))
void MC_init();

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_Kp")))
void MC_set_Kp(double new_Kp);

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_Ki")))
void MC_set_Ki(double new_Ki);

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_Kd")))
void MC_set_Kd(double new_Kd);

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_motor_direction")))
void MC_set_motor_direction(int dir);

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_target_speed")))
void MC_set_target_speed(double speed_rpm);

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_data_output_file")))
void MC_set_data_output_file(const char *file);

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_duration")))
void MC_set_duration(double duration_in_ms);

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_open_loop")))
void MC_set_open_loop(int ol);

__attribute__((import_module("env")))
__attribute__((import_name("MC_set_open_loop_duty_cycle")))
void MC_set_open_loop_duty_cycle(int old);

__attribute__((import_module("env")))
__attribute__((import_name("MC_print_params")))
void MC_print_params();

__attribute__((import_module("env")))
__attribute__((import_name("MC_is_running")))
int MC_is_running();

__attribute__((import_module("env")))
__attribute__((import_name("MC_start")))
void MC_start();

__attribute__((import_module("env")))
__attribute__((import_name("MC_stop")))
void MC_stop();

#endif